Using discomfort for speed planning in autonomous vehicles

ABSTRACT

Aspects of the disclosure relate to controlling a first vehicle in an autonomous driving mode. While doing so, a second vehicle may be identified. Geometry for a future trajectory of the first vehicle may be identified, and an initial allowable discomfort value may be identified. Determining a speed profile for the geometry that meets the value may be attempted by determining a discomfort value for the speed profile based on a set of factors relating to at least discomfort of a passenger of the first vehicle and discomfort of a passenger of the second vehicle. When a speed profile that meets the value cannot be determined, the value may be adjusted until a speed profile that meets the value is determined. The speed profile that meets an adjusted value is used to control the first vehicle in the autonomous driving mode.

BACKGROUND

Autonomous vehicles, for instance, vehicles that do not require a humandriver, can be used to aid in the transport of passengers or items fromone location to another. Such vehicles may operate in a fully autonomousmode where passengers may provide some initial input, such as a pickupor destination location, and the vehicle maneuvers itself to thatlocation, for instance, by determining and following a route which mayrequire the vehicle to respond to and interact with other road userssuch as vehicles, pedestrians, bicyclists, etc.

BRIEF SUMMARY

One aspect of the disclosure provides a method of controlling a firstvehicle. The method includes while maneuvering the first vehicle in anautonomous driving mode, identifying, by one or more processors, asecond vehicle; identifying, by the one or more processors, geometry fora future trajectory of the first vehicle; identifying, by the one ormore processors, an initial allowable discomfort value; attempting, bythe one or more processors, to determine a speed profile for thegeometry that meets the initial allowable discomfort value bydetermining a discomfort value for the speed profile based on a set offactors relating to at least discomfort of a passenger of the firstvehicle and discomfort of a passenger of the second vehicle; when aspeed profile that meets the initial allowable discomfort value cannotbe determined, adjusting, by the one or more processors, the initialallowable discomfort value until a speed profile that meets an adjustedallowable discomfort value is determined; and using, by the one or moreprocessors, the speed profile that meets the adjusted allowablediscomfort value to control the first vehicle in the autonomous drivingmode.

In one example, the geometry includes the first vehicle attemptingmaking a right turn in front of or behind the second vehicle. In thisexample, the speed profile that meets the adjusted allowable discomfortvalue corresponds to accelerating the first vehicle in order to make theright turn in front of the second vehicle. Alternatively, the speedprofile that meets the adjusted allowable discomfort value correspondsto decelerating the first vehicle in order to make the right turn behindthe second vehicle. In another example, the geometry includes the firstvehicle merging into a lane of the second vehicle in front of or behindthe second vehicle. In this example, the speed profile that meets theadjusted allowable discomfort value corresponds to accelerating thefirst vehicle in order to merge in front of the second vehicle.Alternatively, the speed profile that meets the adjusted allowablediscomfort value corresponds to decelerating the first vehicle in orderto merge behind the second vehicle. In another example, the geometryincludes the first vehicle crossing a path in front of or behind of thesecond vehicle. In this example, the speed profile that meets theadjusted allowable discomfort value corresponds to accelerating thefirst vehicle in order to cross the path in front of the second vehicle.Alternatively, the speed profile that meets the adjusted allowablediscomfort value corresponds to decelerating the first vehicle in orderto cross the path behind the second vehicle.

In another example, the set of factors includes at least maximum amountof deceleration for the first vehicle. In another example, the set offactors includes at least a maximum amount of acceleration for the firstvehicle. In another example, the set of factors includes how much thefirst vehicle is expected to exceed a speed limit for a lane in whichthe first vehicle is currently traveling. In another example, the set offactors includes a lateral acceleration of the first vehicle. In anotherexample, the set of factors includes at least how close the firstvehicle will come to the second vehicle. In another example, the set offactors includes how much the second vehicle is expected to need todecelerate. In another example, the set of factors includes how much thesecond vehicle is expected to need to accelerate. In another example,the set of factors includes how much the second vehicle will have toshift its position. In another example, the set of factors includes anuncertainty value which represents uncertainty in the discomfort value.

Another aspect of the disclosure provides a system for controlling afirst vehicle. The system includes one or more processors configured to,while maneuvering the first vehicle in an autonomous driving mode,identify a second vehicle; identify geometry for a future trajectory ofthe first vehicle; identify an initial allowable maximum allowablediscomfort value; attempt to determine a speed profile for the geometrythat meets the initial allowable discomfort value by determining adiscomfort value for the speed profile based on a set of factorsrelating to at least discomfort of a passenger of the first vehicle anddiscomfort of a passenger of the second vehicle; when a speed profilethat meets the maximum allowable discomfort value cannot be determined,adjust the initial allowable discomfort value until a speed profile thatmeets an adjusted allowable discomfort value is determined; and use thespeed profile that meets the adjusted allowable discomfort value tocontrol the first vehicle in the autonomous driving mode.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a functional diagram of an example vehicle in accordance withan exemplary embodiment.

FIG. 2 is an example of map information in accordance with aspects ofthe disclosure.

FIG. 3 is an example external view of a vehicle in accordance withaspects of the disclosure.

FIG. 4 is a pictorial diagram of an example system in accordance with anexemplary embodiment.

FIG. 5 is a functional diagram of the system of FIG. 4 in accordancewith aspects of the disclosure.

FIG. 6 is an example bird's eye view of a geographic area in accordancewith aspects of the disclosure.

FIG. 7 is an example bird's eye view of a geographic area in accordancewith aspects of the disclosure.

FIG. 8 is an example bird's eye view of a geographic area in accordancewith aspects of the disclosure.

FIG. 9 is an example bird's eye view of a geographic area in accordancewith aspects of the disclosure.

FIG. 10 is an example flow diagram in accordance with aspects of thedisclosure.

DETAILED DESCRIPTION

Overview

The technology relates to using a discomfort value to determine how tocontrol an autonomous vehicle's speed. When generating a vehicle'strajectory, the geometry of the autonomous vehicle's path may bedetermined before determining a speed profile for that trajectory. Insome instances, the autonomous vehicle's computing devices may detect anobject only after the autonomous vehicle has begun to follow thegeometry of the path. At this point, the autonomous vehicle's computingdevices may not be able to sufficiently adjust the geometry of the path,but may have to determine an appropriate speed profile. To make thesedecisions, a discomfort value which suggests discomfort for the vehicleas well as road users in the vehicle's environment, for instance, othervehicles, bicyclists, or pedestrians, may be used.

In order for the vehicle's computing devices to maneuver the vehicleautonomously, the computing devices must generate trajectories, orfuture paths for the vehicle to follow over some brief period into thefuture. These future paths may include a geometry component and a speedcomponent or speed profile. The speed profile may be generated after thegeometry component. In this regard, for any given geometry, a number ofdifferent possible speed profiles may be generated, including forinstance, those that require the vehicle to speed up or to slow down.Again, deciding which of these speed profiles to use can be a challenge.

The computing devices may attempt to determine a speed profile for agiven geometry that minimizes a discomfort value for the autonomousvehicle as well as the other vehicle to identify a speed profile. Adiscomfort value may be determined based on a combination of factorsrelating to expected discomfort experienced by a passenger of theautonomous vehicle (whether or not the autonomous vehicle actuallyincludes a passenger) and a passenger of another vehicle, pedestrian, orbicyclist, etc.

In other words, the computing devices may determine whether there is asolution (i.e. a speed profile) with an associated discomfort value thatwill satisfy or meet a maximum allowable discomfort value. For instance,for a given maximum allowable discomfort value, the computing devicesmay return a speed profile for that maximum allowable discomfort valueor a failure if within the limits of that maximum allowable discomfortvalue no solution can be found. This results in the computing deviceschoosing a speed plan with the lowest feasible maximum allowablediscomfort value. The computing devices may search for speed profilesiteratively using different maximum allowable discomfort values. Forinstance, the computing devices start with an initial or lowest maximumallowable discomfort value. If the computing devices are unable to finda speed profile at that maximum allowable discomfort value, thecomputing devices may increase the maximum allowable discomfort valueuntil a solution, or speed profile that meets the current maximumallowable speed discomfort value, is found.

For a given maximum allowable discomfort value, the vehicle's computingdevices may start with a speed profile that moves as fast as possiblegiven limits on velocity, such as road speed limits and lateralacceleration limits in turns, and slow regions (defined by mapinformation). This initial profile may not necessarily satisfyconstraints from other objects such as vehicles, bicycles, pedestrians,debris, etc. overlapping with the geometry component of the trajectory.Those constraints are resolved one by one. If the computing devicescan't satisfy the constraints even when braking as hard and as early aspossible for the maximum allowable discomfort value, the given maximumallowable discomfort value may be increased and new speed profilesgenerated. However, if the speed profile can both pass or yield toanother vehicle at the given maximum allowable discomfort value, thecomputing devices may select a default action, such as speeding up topass the other object.

The computing device may then control the vehicle according to the speedprofile that meets the smallest maximum allowable discomfort value. Thediscomfort value may be used when generating all speed profiles, but canbe especially useful when the autonomous is in certain types ofsituation which requires that the autonomous vehicle either speed up orslow down while interacting with another vehicle.

The features described herein may allow an autonomous vehicle todetermine a speed profile while considering how that speed profile willaffect both any passengers of the autonomous vehicle as well as anypassengers of another vehicle with which the autonomous vehicle isinteracting. This also increases safety. In other words, using moreconservative estimates for predicting the behavior of other objects andusing larger safety margins at lower maximum allowable discomfort valuesresults in a safer solution.

Example Systems

As shown in FIG. 1, a vehicle 100 in accordance with one aspect of thedisclosure includes various components. While certain aspects of thedisclosure are particularly useful in connection with specific types ofvehicles, the vehicle may be any type of vehicle including, but notlimited to, cars, trucks, motorcycles, buses, recreational vehicles,etc. The vehicle may have one or more computing devices, such ascomputing devices 110 containing one or more processors 120, memory 130and other components typically present in general purpose computingdevices.

The memory 130 stores information accessible by the one or moreprocessors 120, including instructions 134 and data 132 that may beexecuted or otherwise used by the processor 120. The memory 130 may beof any type capable of storing information accessible by the processor,including a computing device-readable medium, or other medium thatstores data that may be read with the aid of an electronic device, suchas a hard-drive, memory card, ROM, RAM, DVD or other optical disks, aswell as other write-capable and read-only memories. Systems and methodsmay include different combinations of the foregoing, whereby differentportions of the instructions and data are stored on different types ofmedia.

The instructions 134 may be any set of instructions to be executeddirectly (such as machine code) or indirectly (such as scripts) by theprocessor. For example, the instructions may be stored as computingdevice code on the computing device-readable medium. In that regard, theterms “instructions” and “programs” may be used interchangeably herein.The instructions may be stored in object code format for directprocessing by the processor, or in any other computing device languageincluding scripts or collections of independent source code modules thatare interpreted on demand or compiled in advance. Functions, methods androutines of the instructions are explained in more detail below.

The data 132 may be retrieved, stored or modified by processor 120 inaccordance with the instructions 134. For instance, although the claimedsubject matter is not limited by any particular data structure, the datamay be stored in computing device registers, in a relational database asa table having a plurality of different fields and records, XMLdocuments or flat files. The data may also be formatted in any computingdevice-readable format.

The one or more processor 120 may be any conventional processors, suchas commercially available CPUs. Alternatively, the one or moreprocessors may be a dedicated device such as an ASIC or otherhardware-based processor. Although FIG. 1 functionally illustrates theprocessor, memory, and other elements of computing devices 110 as beingwithin the same block, it will be understood by those of ordinary skillin the art that the processor, computing device, or memory may actuallyinclude multiple processors, computing devices, or memories that may ormay not be stored within the same physical housing. For example, memorymay be a hard drive or other storage media located in a housingdifferent from that of computing devices 110. Accordingly, references toa processor or computing device will be understood to include referencesto a collection of processors or computing devices or memories that mayor may not operate in parallel.

Computing devices 110 may all of the components normally used inconnection with a computing device such as the processor and memorydescribed above as well as a user input 150 (e.g., a mouse, keyboard,touch screen and/or microphone) and various electronic displays (e.g., amonitor having a screen or any other electrical device that is operableto display information). In this example, the vehicle includes aninternal electronic display 152 as well as one or more speakers 154 toprovide information or audio visual experiences. In this regard,internal electronic display 152 may be located within a cabin of vehicle100 and may be used by computing devices 110 to provide information topassengers within the vehicle 100.

Computing devices 110 may also include one or more wireless networkconnections 156 to facilitate communication with other computingdevices, such as the client computing devices and server computingdevices described in detail below. The wireless network connections mayinclude short range communication protocols such as Bluetooth, Bluetoothlow energy (LE), cellular connections, as well as various configurationsand protocols including the Internet, World Wide Web, intranets, virtualprivate networks, wide area networks, local networks, private networksusing communication protocols proprietary to one or more companies,Ethernet, WiFi and HTTP, and various combinations of the foregoing.

In one example, computing devices 110 may be control computing devicesof an autonomous driving computing system or incorporated into vehicle100. The autonomous driving computing system may capable ofcommunicating with various components of the vehicle in order to controlthe movement of vehicle 100 according to primary vehicle control code ofmemory 130. For example, returning to FIG. 1, computing devices 110 maybe in communication with various systems of vehicle 100, such asdeceleration system 160, acceleration system 162, steering system 164,signaling system 166, routing system 168, positioning system 170,perception system 172, and power system 174 (i.e. the vehicle's engineor motor) in order to control the movement, speed, etc. of vehicle 100in accordance with the instructions 134 of memory 130. Again, althoughthese systems are shown as external to computing devices 110, inactuality, these systems may also be incorporated into computing devices110, again as an autonomous driving computing system for controllingvehicle 100.

As an example, computing devices 110 may interact with one or moreactuators of the deceleration system 160 and/or acceleration system 162,such as brakes, accelerator pedal, and/or the engine or motor of thevehicle, in order to control the speed of the vehicle. Similarly, one ormore actuators of the steering system 164, such as a steering wheel,steering shaft, and/or pinion and rack in a rack and pinion system, maybe used by computing devices 110 in order to control the direction ofvehicle 100. For example, if vehicle 100 is configured for use on aroad, such as a car or truck, the steering system may include one ormore actuators to control the angle of wheels to turn the vehicle.Signaling system 166 may be used by computing devices 110 in order tosignal the vehicle's intent to other drivers or vehicles, for example,by lighting turn signals or brake lights when needed.

Routing system 168 may be used by computing devices 110 in order todetermine and follow a route to a location. In this regard, the routingsystem 168 and/or data 132 may store detailed map information, e.g.,highly detailed maps identifying the shape and elevation of roadways,lane lines, intersections, crosswalks, speed limits, traffic signals,buildings, signs, real time traffic information, vegetation, or othersuch objects and information.

FIG. 2 is an example of map information 200 for a section of roadwayincluding intersections 202 and 204. In this example, the mapinformation 200 includes information identifying the shape, location,and other characteristics of lane lines 210, 212, 214, traffic signallights 220, 222, crosswalk 230, sidewalks 240, stop signs 250, 252, andyield sign 260. Although the map information is depicted herein as animage-based map, the map information need not be entirely image based(for example, raster). For example, the map information may include oneor more roadgraphs or graph networks of information such as roads,lanes, intersections, and the connections between these features. Eachfeature may be stored as graph data and may be associated withinformation such as a geographic location and whether or not it islinked to other related features, for example, a stop sign may be linkedto a road and an intersection, etc. In some examples, the associateddata may include grid-based indices of a roadgraph to allow forefficient lookup of certain roadgraph features.

Positioning system 170 may be used by computing devices 110 in order todetermine the vehicle's relative or absolute position on a map or on theearth. For example, the position system 170 may include a GPS receiverto determine the device's latitude, longitude and/or altitude position.Other location systems such as laser-based localization systems,inertial-aided GPS, or camera-based localization may also be used toidentify the location of the vehicle. The location of the vehicle mayinclude an absolute geographical location, such as latitude, longitude,and altitude as well as relative location information, such as locationrelative to other cars immediately around it which can often bedetermined with less noise that absolute geographical location.

The positioning system 170 may also include other devices incommunication with computing devices 110, such as an accelerometer,gyroscope or another direction/speed detection device to determine thedirection and speed of the vehicle or changes thereto. By way of exampleonly, an acceleration device may determine its pitch, yaw or roll (orchanges thereto) relative to the direction of gravity or a planeperpendicular thereto. The device may also track increases or decreasesin speed and the direction of such changes. The device's provision oflocation and orientation data as set forth herein may be providedautomatically to the computing devices 110, other computing devices andcombinations of the foregoing.

The perception system 172 also includes one or more components fordetecting objects external to the vehicle such as other vehicles,obstacles in the roadway, traffic signals, signs, trees, etc. Forexample, the perception system 172 may include lasers, sonar, radar,cameras and/or any other detection devices that record data which may beprocessed by computing device 110. In the case where the vehicle is apassenger vehicle such as a minivan, the minivan may include a laser orother sensors mounted on the roof or other convenient location. Forinstance, FIG. 3 is an example external view of vehicle 100. In thisexample, roof-top housing 310 and dome housing 312 may include a lidarsensor as well as various cameras and radar units. In addition, housing320 located at the front end of vehicle 100 and housings 330, 332 on thedriver's and passenger's sides of the vehicle may each store a lidarsensor. For example, housing 330 is located in front of driver door 360.Vehicle 100 also includes housings 340, 342 for radar units and/orcameras also located on the roof of vehicle 100. Additional radar unitsand cameras (not shown) may be located at the front and rear ends ofvehicle 100 and/or on other positions along the roof or roof-top housing310.

The computing devices 110 may control the direction and speed of thevehicle by controlling various components. By way of example, computingdevices 110 may navigate the vehicle to a destination locationcompletely autonomously using data from the detailed map information androuting system 168. Computing devices 110 may use the positioning system170 to determine the vehicle's location and perception system 172 todetect and respond to objects when needed to reach the location safely.In order to do so, computing devices 110 may cause the vehicle toaccelerate (e.g., by increasing fuel or other energy provided to theengine by acceleration system 162), decelerate (e.g., by decreasing thefuel supplied to the engine, changing gears, and/or by applying brakesby deceleration system 160), change direction (e.g., by turning thefront or rear wheels of vehicle 100 by steering system 164), and signalsuch changes (e.g., by lighting turn signals of signaling system 166).Thus, the acceleration system 162 and deceleration system 160 may be apart of a drivetrain that includes various components between an engineof the vehicle and the wheels of the vehicle. Again, by controllingthese systems, computing devices 110 may also control the drivetrain ofthe vehicle in order to maneuver the vehicle autonomously.

Computing device 110 of vehicle 100 may also receive or transferinformation to and from other computing devices, such as those computingdevices that are a part of the transportation service as well as othercomputing devices. FIGS. 4 and 5 are pictorial and functional diagrams,respectively, of an example system 400 that includes a plurality ofcomputing devices 410, 420, 430, 440 and a storage system 450 connectedvia a network 460. System 400 also includes vehicle 100, and vehicles100A, 100B which may be configured the same as or similarly to vehicle100. Although only a few vehicles and computing devices are depicted forsimplicity, a typical system may include significantly more.

As shown in FIG. 4, each of computing devices 410, 420, 430, 440 mayinclude one or more processors, memory, data and instructions. Suchprocessors, memories, data and instructions may be configured similarlyto one or more processors 120, memory 130, data 132, and instructions134 of computing device 110.

The network 460, and intervening nodes, may include variousconfigurations and protocols including short range communicationprotocols such as Bluetooth, Bluetooth LE, the Internet, World Wide Web,intranets, virtual private networks, wide area networks, local networks,private networks using communication protocols proprietary to one ormore companies, Ethernet, WiFi and HTTP, and various combinations of theforegoing. Such communication may be facilitated by any device capableof transmitting data to and from other computing devices, such as modemsand wireless interfaces.

In one example, one or more computing devices 110 may include one ormore server computing devices having a plurality of computing devices,e.g., a load balanced server farm, that exchange information withdifferent nodes of a network for the purpose of receiving, processingand transmitting the data to and from other computing devices. Forinstance, one or more computing devices 410 may include one or moreserver computing devices that are capable of communicating withcomputing device 110 of vehicle 100 or a similar computing device ofvehicle 100A as well as computing devices 420, 430, 440 via the network460. For example, vehicles 100, 100A, may be a part of a fleet ofvehicles that can be dispatched by server computing devices to variouslocations. In this regard, the server computing devices 410 may functionas a dispatching system. In addition, the vehicles of the fleet mayperiodically send the server computing devices location informationprovided by the vehicle's respective positioning systems as well asother information relating to the status of the vehicles discussedfurther below, and the one or more server computing devices may trackthe locations and status of each of the vehicles of the fleet.

In addition, server computing devices 410 may use network 460 totransmit and present information to a user, such as user 422, 432, 442on a display, such as displays 424, 434, 444 of computing devices 420,430, 440. In this regard, computing devices 420, 430, 440 may beconsidered client computing devices.

As shown in FIG. 4, each client computing device 420, 430, 440 may be apersonal computing device intended for use by a user 422, 432, 442, andhave all of the components normally used in connection with a personalcomputing device including a one or more processors (e.g., a centralprocessing unit (CPU)), memory (e.g., RAM and internal hard drives)storing data and instructions, a display such as displays 424, 434, 444(e.g., a monitor having a screen, a touch-screen, a projector, atelevision, or other device that is operable to display information),and user input devices 426, 436, 446 (e.g., a mouse, keyboard,touchscreen or microphone). The client computing devices may alsoinclude a camera for recording video streams, speakers, a networkinterface device, and all of the components used for connecting theseelements to one another.

Although the client computing devices 420, 430, and 440 may eachcomprise a full-sized personal computing device, they may alternativelycomprise mobile computing devices capable of wirelessly exchanging datawith a server over a network such as the Internet. By way of exampleonly, client computing device 420 may be a mobile phone or a device suchas a wireless-enabled PDA, a tablet PC, a wearable computing device orsystem, or a netbook that is capable of obtaining information via theInternet or other networks. In another example, client computing device430 may be a wearable computing system, shown as a wristwatch as shownin FIG. 4. As an example the user may input information using a smallkeyboard, a keypad, microphone, using visual signals with a camera, or atouch screen.

In some examples, client computing device 440 may be a concierge workstation used by an administrator or operator of a depot to provide depotservices for the vehicles of the fleet. Although only a single depotwork station 440 is shown in FIGS. 4 and 5, any number of such workstations may be included in a typical system.

As with memory 130, storage system 450 can be of any type ofcomputerized storage capable of storing information accessible by theserver computing devices 410, such as a hard-drive, memory card, ROM,RAM, DVD, CD-ROM, write-capable, and read-only memories. In addition,storage system 450 may include a distributed storage system where datais stored on a plurality of different storage devices which may bephysically located at the same or different geographic locations.Storage system 450 may be connected to the computing devices via thenetwork 460 as shown in FIGS. 4 and 5, and/or may be directly connectedto or incorporated into any of the computing devices 110, 410, 420, 430,440, etc.

Storage system 450 may store various types of information as describedin more detail below. This information may be retrieved or otherwiseaccessed by a server computing device, such as one or more servercomputing devices 410, in order to perform some or all of the featuresdescribed herein. In order to provide transportation services to users,the information of storage system 450 may include user accountinformation such as credentials (e.g., a user name and password as inthe case of a traditional single-factor authentication as well as othertypes of credentials typically used in multi-factor authentications suchas random identifiers, biometrics, etc.) that can be used to identify auser to the one or more server computing devices. The user accountinformation may also include personal information such as the user'sname, contact information, identifying information of the user's clientcomputing device (or devices if multiple devices are used with the sameuser account), one or more unique signals for the user as well as otheruser preference or settings data.

The storage system 450 may also store information which can be providedto client computing devices for display to a user. For instance, thestorage system 450 may store predetermined distance information fordetermining an area at which a vehicle is likely to stop for a givenpickup or destination location. The storage system 450 may also storegraphics, icons, and other items which may be displayed to a user asdiscussed below.

Example Methods

In addition to the operations described above and illustrated in thefigures, various operations will now be described. It should beunderstood that the following operations do not have to be performed inthe precise order described below. Rather, various steps can be handledin a different order or simultaneously, and steps may also be added oromitted.

The vehicle's computing devices may control the vehicle in order tofollow a route. This may include generating a plurality of short termtrajectories for the vehicle. These trajectories may be essentiallyfuture paths for the vehicle to follow over some brief period into thefuture, such as 2 seconds, 10 seconds, 16 seconds or more or less, inorder to follow the route to the destination. These future paths mayinclude a geometry component and a speed component or speed profile. Thespeed profile may be generated after the geometry component. In thisregard, for any given geometry, a number of different possible speedprofiles may be generated, including for instance, those that requirethe vehicle to speed up or to slow down. Again, deciding which of thesespeed profiles to use can be a challenge.

FIG. 6 is an example view of vehicle 100 being maneuvered on a sectionof roadway corresponding to the section of roadway defined in the mapinformation of FIG. 2. For instance, FIG. 6 depicts vehicle 100 beingmaneuvered on a section of roadway 600 including intersections 602 and604. In this example, intersections 602 and 604 correspond tointersections 202 and 204 of the map information 200, respectively. Inthis example, lane lines 610, 612, and 614 correspond to the shape,location, and other characteristics of lane lines 210, 212, and 214,respectively. Similarly, crosswalk 630 corresponds to the shape,location, and other characteristics of crosswalk 230, respectively;sidewalks 640 correspond to sidewalks 240; traffic signal lights 620,622 correspond to traffic signal lights 220, 222, respectively; stopsigns 650, 652 correspond to stop signs 250, 252, respectively; andyield sign 660 corresponds to yield sign 260.

In this example, the computing devices 110 have used map information 200to determine a trajectory 670 for vehicle 100 to follow in order toreach a destination (not shown). Trajectory 670 includes a speedcomponent and geometry component (same as what is shown in FIG. 6 fortrajectory 670) that will require that vehicle 100 may a left turn atintersection 604.

The computing devices may attempt to determine a speed profile for agiven geometry, such as the geometry trajectory 670, that minimizes adiscomfort value use a minimum threshold discomfort value for theautonomous vehicle as well as the other vehicle to identify a for eachpossible speed profile. A discomfort value may be determined based on acombination of factors relating to expected discomfort experienced by apassenger of the autonomous vehicle (whether or not the autonomousvehicle actually includes a passenger) and a passenger of anothervehicle, pedestrian, or bicyclist, etc. This discomfort value may bedetermined based on a combination of factors including, for instance,maximum deceleration, maximum acceleration, maximum jerk, maximumlateral acceleration, maximum lateral jerk, maximum amount thatautonomous vehicle will exceed a speed limit whether the autonomousvehicle will have to enter a crosswalk, whether the vehicle will have toenter an occluded crosswalk, whether the vehicle's speed will surpass aproximity speed limit, minimum distance between the vehicle and anyother objects (for instance, how close together the two vehicles willcome), etc. With regard to the proximity speed limit, this maycorrespond to limiting the speed of the vehicle as a function of thedistance to a nearby object. This limit may correspond to a limit on anabsolute speed, a relative speed, a percentage of the speed limit forthe roadway on which the vehicle is currently driving, etc.

In addition to these factors, for another road user, such as anothervehicle, bicyclist or pedestrian, the factors may also include how muchthe other object will have to decelerate, when the other vehicle will beable to see or detect the autonomous vehicle, how much the other objectwill have to shift its position (move to the right or left), a headwaytime which corresponds to an estimated reaction time for the othervehicle, whether another vehicle will have to enter a crosswalk, whetheranother vehicle will have to enter an occluded crosswalk, maximum amountthat any other vehicle will need to exceed the speed limit, as well asan uncertainty value for how confident the computing devices are in theprediction of the other object's position and speed.

Each of these factors may be evaluated using a specific scale for thatvalue. For instance, the minimum acceleration (or the maximum alloweddeceleration) may range from −2 m/s2 to −8 m/s2 or more or less, maximumacceleration may range from 2 m/s2 to 3 m/s2, jerk may range from 2 m/s2to 8 m/s2 or more or less, lateral acceleration may range from 3 m/s2 to4 m/s2, exceeding the speed limit may range from 0% to 12% or more orless, proximity speed limit may range from 0% to 12% or more or less,headway may range from 0.75 seconds to 0 seconds or more or less,uncertainty may range from a standard deviation of 0.8 to a standarddeviation of 0 or more or less.

In addition, these scales may be adjusted under certain circumstances.For instance, when two vehicles are interacting, the vehicle which hasprecedence (i.e. the right of way) may be allowed or expected to behavemore assertively, whereas the vehicle which does not have precedence(i.e. does not have the right of way) may be allowed or expected tobehave more cooperatively. In that regard, the scales may be adjustedaccordingly to precedence. In this regard, the scale for the maximumallowed deceleration may be increased for a vehicle which does not haveprecedence, for instance the scale may then from −2 m/s2 to −10 m/s2 ormore or less. Similarly, the scale for the maximum acceleration mayincrease for a vehicle which does have precedence, for instance, thescale may then range from 2 m/s2 to 10 m/s2 or more or less.

The computing devices may determine whether there is a solution (i.e. aspeed profile) that will satisfy or meet a maximum allowable discomfortvalue and all speed constraints, discussed further below. For instance,for a given maximum allowable discomfort value, the computing devices110 may return a speed profile for that maximum allowable discomfortvalue or a failure if within the limits of that maximum allowablediscomfort value no solution can be found. This results in the computingdevices choosing a speed plan with the lowest feasible maximum allowablediscomfort value. For situations with no constraints to considers, forinstance, such as the example of FIG. 6, the computing devices may beable to find a speed profile at the lowest maximum allowable discomfortvalue and therefore would not need to evaluate higher maximum allowablediscomfort values. In other words, where there are no other road userssuch as vehicles, bicyclists, or pedestrians proximate to the vehicle100, the computing devices 110 will typically be able to find a speedprofile that meets an initial or the lowest maximum allowable discomfortvalue, for instance zero discomfort. When the vehicle 100's trajectorycomes close to other such road users, such as vehicles or pedestrians,the vehicle should be controlled at slower speeds for safety reasons.Accordingly, the desired speed may be a function of the type of otherroad user (for instance, vehicle, bicyclist, or pedestrian) and howclose the vehicle 100 can get to that other object. By increasing themaximum allowable discomfort values, the vehicle 100 may even be allowedto exceed the desired speed slightly to avoid a collision with suchother road users.

The computing devices may search for speed profiles iteratively usingdifferent maximum allowable discomfort values. For instance, thecomputing devices start with a first and lowest maximum allowablediscomfort value, such as zero. If the computing devices are unable tofind a speed profile at that maximum allowable discomfort value, thecomputing devices may increase the maximum allowable discomfort valueuntil a solution is found. For instance, the maximum allowablediscomfort value may be increased from 0 by increments of 0.1, 0.2,0.25, 0.5, or more or less, until the maximum allowable discomfort valuereaches some absolute maximum value, such as 0.5, 1, 2, 10 or more orless. In the example of increments of 0.25 and a maximum value of 1,there would be 5 discrete levels, although additional or differentlevels, increments, and absolute maximum values may also be used.

For each given maximum allowable discomfort value, the vehicle'scomputing devices may start with an initial speed profile that moves asfast as possible given one or more constraints, such as limits onvelocity, such as road speed limits and lateral acceleration limits inturns, minimum distances to other objects, slow regions (defined by mapinformation), etc. These constraints may be derived from the predictedactions of other objects such as vehicles, bicycles, pedestrians,debris, etc. overlapping with the geometry component of the trajectory.For instance, if a pedestrian is predicted to cross the vehicle'strajectory at a given location, then that location and the time thepedestrian is expected to enter and leave the vehicle's trajectory maydefine a speed constraint.

This initial profile may not necessarily satisfy constraints from all ofthe other objects expected to overlap with the geometry component of thetrajectory. Those constraints are resolved one by one. If the computingdevices determine one of the constraints is violated, the computingdevices attempt to yield to that constraint by slowing the speed profiledown. When slowing the speed profile down, the computing devices maymake the vehicle deceleration (or brake) as late as possible and speedup again as soon as possible after the constraint. Thus, the speedprofile is still moving as fast as possible while satisfying theconstraint. This is important because as long as computing devicesunderstand that the speed profiles are always moving as fast aspossible, slowing the speed profile down is the only option to make theprofile satisfy a violated constraint. If the computing devices are ableto slow down the speed profile and satisfy the constraint, the computingdevices repeat the process with the next violated constraint until allconstraints are satisfied. If the computing devices can't satisfy theconstraints even when braking as hard and as early as possible, themaximum allowable discomfort value may be increased and new speedprofiles generated. However, if the speed profile can both pass or yieldto another vehicle at the given maximum allowable discomfort value, thecomputing devices may select a default action, such as speeding up topass the other object.

The computing device may then control the vehicle according to the speedprofile that meets the smallest maximum allowable discomfort value. Iffor a given maximum allowable discomfort value the vehicle may use speedprofiles for either passing or yielding, the vehicle's computing devicesmay choose the speed profile for passing with the highest speed. Thisspeed profile may then be used in combination with the geometrycomponent to control the vehicle.

The discomfort value may be used when generating all speed profiles, butcan be especially useful when the autonomous vehicle in certain types ofsituation which requires that the autonomous vehicle either speed up orslow down while interacting with another vehicle. These situations mayinclude making a right turn in front of or behind another vehicle,merging in front of or behind another vehicle, crossing the path of aanother vehicle in front of or behind the other vehicle, and so on.Again, by using the discomfort values, such decisions may be madeautomatically rather than by requiring the computing devices to make aspecific choice and thereafter determining a speed plan.

In the example of the right turn, the computing devices may need todecide between a speed profile that includes speeding up to allow thevehicle to turn in front of the other vehicle and a speed profile thatincludes decreasing speed to allow the vehicle yield to the othervehicle. For instance, turning to FIG. 7, vehicle 100 must make a rightturn at intersection 604 in order to follow trajectory 710. Differentspeed profiles may cause vehicle 100 to pass in front of or behindvehicle 720. For instance, if the speed profile causes the vehicle tomove along the trajectory immediately, for example, increasing itsspeed, the vehicle 100 may pass in front of vehicle 720. Similarly, ifthe speed profile causes the vehicle to wait or move very slowly, thevehicle 100 may pass behind the vehicle 720. By using a maximumallowable discomfort value as described above, such decisions may bemade automatically, by considering discomfort to passengers of bothvehicle 100 and vehicle 720, rather than by requiring the computingdevices to make a specific choice and thereafter determining a speedplan.

Similarly in the example of a merge, the computing devices may need todecide between a speed profile that includes increasing speed to getover in front of the other vehicle and a speed profile that includesdecreasing speed to get over behind the other vehicle. For instance,turning to FIG. 8, vehicle 100 must merge into traffic in order tofollow trajectory 810. Different speed profiles may cause vehicle 100 tomerge in front of or behind vehicle 820. For instance, if the speedprofile causes the vehicle to move along the trajectory immediately, forexample, increasing its speed, the vehicle 100 may merge in front ofvehicle 820. Similarly, if the speed profile causes the vehicle to waitor move very slowly, the vehicle 100 may merge behind the vehicle 820.Again, by using a maximum allowable discomfort value as described above,such decisions may be made automatically, by considering discomfort topassengers of both vehicle 100 and vehicle 820, rather than by requiringthe computing devices to make a specific choice and thereafterdetermining a speed plan.

And again, in the example of crossing the path of another vehicle, thecomputing devices may need to decide between a speed profile thatincludes increasing speed to cross over the path of the other vehiclebefore the in front of that vehicle and a speed profile that includesdecreasing speed to cross the path of the other vehicle after thevehicle behind the other vehicle. For instance, turning to FIG. 9,vehicle 100 must proceed straight through intersection 604 in order tofollow trajectory 910. Different speed profiles may cause vehicle 100 topass in front of or behind vehicle 920. For instance, if the speedprofile causes the vehicle to move along the trajectory immediately, forexample, increasing its speed, the vehicle 100 may cross the path ofvehicle 920 in front of vehicle 920. Similarly, if the speed profilecauses the vehicle to wait or move very slowly, the vehicle 100 maycross the path of vehicle 920 behind the vehicle 920. Again, by using amaximum allowable discomfort value as described above, such decisionsmay be made automatically, by considering discomfort to passengers ofboth vehicle 100 and vehicle 920, rather than by requiring the computingdevices to make a specific choice and thereafter determining a speedplan.

With regard to the uncertainty factor, in some circumstances for lowermaximum allowable discomfort values, the vehicle's computing devices mayadjust the vehicle's behavior to proceed more cautiously. For instance,at lower maximum allowable discomfort values, the computing devices mayapply a “buffer” constraint around other objects future states thatrepresents an uncertainty about their future trajectory. As an example,this buffer constraint may be generated such that there is a 60% or moreor less likelihood that the other object will stay within the inflatedconstraint. For higher maximum allowable discomfort values, this bufferconstraint may be reduced.

FIG. 10 includes an example flow diagram 1000 of some of the examplesfor controlling a first vehicle, such as vehicle 100, which may beperformed by one or more processors such as processors 120 of computingdevices 110. For instance, at block 1010, while maneuvering the firstvehicle in an autonomous driving mode, a second vehicle is identified.At block 1020, geometry for a future trajectory of the first vehicle isreceived. At block 1030, an initial allowable discomfort value isidentified. At block 1040, determining a speed profile for the geometrythat meets the initial allowable discomfort value is attempted bydetermining a discomfort value for the speed profile based on a set offactors relating to at least discomfort of a passenger of the firstvehicle and discomfort of a passenger of the second vehicle. At block1050, when a speed profile that meets the initial allowable discomfortvalue cannot be determined, the initial allowable discomfort value isadjusted until a speed profile that meets an adjusted allowablediscomfort value is determined. At block 1060, the speed profile thatmeets the adjusted allowable discomfort value is used to control thevehicle in the autonomous driving mode.

Unless otherwise stated, the foregoing alternative examples are notmutually exclusive, but may be implemented in various combinations toachieve unique advantages. As these and other variations andcombinations of the features discussed above can be utilized withoutdeparting from the subject matter defined by the claims, the foregoingdescription of the embodiments should be taken by way of illustrationrather than by way of limitation of the subject matter defined by theclaims. In addition, the provision of the examples described herein, aswell as clauses phrased as “such as,” “including” and the like, shouldnot be interpreted as limiting the subject matter of the claims to thespecific examples; rather, the examples are intended to illustrate onlyone of many possible embodiments. Further, the same reference numbers indifferent drawings can identify the same or similar elements.

The invention claimed is:
 1. A method of controlling a first vehicle,the method comprising: while maneuvering the first vehicle in anautonomous driving mode, identifying, by one or more processors, asecond vehicle; identifying, by the one or more processors, geometry fora future trajectory of the first vehicle; identifying, by the one ormore processors, an initial allowable discomfort value; attempting, bythe one or more processors, to determine a speed profile for thegeometry that meets the initial allowable discomfort value bydetermining a discomfort value for the speed profile based on a set offactors relating to at least discomfort of a passenger of the firstvehicle and discomfort of a passenger of the second vehicle; when aspeed profile that meets the initial allowable discomfort value cannotbe determined, adjusting, by the one or more processors, the initialallowable discomfort value until a speed profile that meets an adjustedallowable discomfort value is determined; and using, by the one or moreprocessors, the speed profile that meets the adjusted allowablediscomfort value to control the first vehicle in the autonomous drivingmode.
 2. The method of claim 1, wherein the geometry includes the firstvehicle attempting making a right turn in front of or behind the secondvehicle.
 3. The method of claim 2, wherein the speed profile that meetsthe adjusted allowable discomfort value corresponds to accelerating thefirst vehicle in order to make the right turn in front of the secondvehicle.
 4. The method of claim 2, wherein the speed profile that meetsthe adjusted allowable discomfort value corresponds to decelerating thefirst vehicle in order to make the right turn behind the second vehicle.5. The method of claim 1, wherein the geometry includes the firstvehicle merging into a lane of the second vehicle in front of or behindthe second vehicle.
 6. The method of claim 5, wherein the speed profilethat meets the adjusted allowable discomfort value corresponds toaccelerating the first vehicle in order to merge in front of the secondvehicle.
 7. The method of claim 5, wherein the speed profile that meetsthe adjusted allowable discomfort value corresponds to decelerating thefirst vehicle in order to merge behind the second vehicle.
 8. The methodof claim 1, wherein the geometry includes the first vehicle crossing apath in front of or behind of the second vehicle.
 9. The method of claim8, wherein the speed profile that meets the adjusted allowablediscomfort value corresponds to accelerating the first vehicle in orderto cross the path in front of the second vehicle.
 10. The method ofclaim 8, wherein the speed profile that meets the adjusted allowablediscomfort value corresponds to decelerating the first vehicle in orderto cross the path behind the second vehicle.
 11. The method of claim 1,wherein the set of factors includes at least maximum amount ofdeceleration for the first vehicle.
 12. The method of claim 1, whereinthe set of factors includes at least a maximum amount of accelerationfor the first vehicle.
 13. The method of claim 1, wherein the set offactors includes how much the first vehicle is expected to exceed aspeed limit for a lane in which the first vehicle is currentlytraveling.
 14. The method of claim 1, wherein the set of factorsincludes a lateral acceleration of the first vehicle.
 15. The method ofclaim 1, wherein the set of factors includes at least how close thefirst vehicle will come to the second vehicle.
 16. The method of claim1, wherein the set of factors includes how much the second vehicle isexpected to need to decelerate.
 17. The method of claim 1, wherein theset of factors includes how much the second vehicle is expected to needto accelerate.
 18. The method of claim 1, wherein the set of factorsincludes how much the second vehicle will have to shift its position.19. The method of claim 1, wherein the set of factors includes anuncertainty value which represents uncertainty in the discomfort value.20. A system for controlling a first vehicle, the system comprising oneor more processors configured to: while maneuvering the first vehicle inan autonomous driving mode, identify a second vehicle; identify geometryfor a future trajectory of the first vehicle; identify an initialallowable discomfort value; attempt to determine a speed profile for thegeometry that meets the initial allowable discomfort value bydetermining a discomfort value for the speed profile based on a set offactors relating to at least discomfort of a passenger of the firstvehicle and discomfort of a passenger of the second vehicle; when aspeed profile that meets the initial allowable discomfort value cannotbe determined, adjust the initial allowable discomfort value until aspeed profile that meets an adjusted allowable discomfort value isdetermined; and use the speed profile that meets the adjusted allowablediscomfort value to control the first vehicle in the autonomous drivingmode.